// 封装 axios

import axios from 'axios'
import store from '@/store' // 获取store里面的 token
// import { getStorage } from './storage'  // 获取本地的

import JSONBig from 'json-bigint'

const request = axios.create({
  baseURL: 'http://toutiao-app.itheima.net', // 基础路径
  Timeout: 3 * 1000,
  // `transformResponse` 在传递给 then/catch 前，允许修改响应数据
  transformResponse: [function (data) {
    try {
      return JSONBig.parse(data)
    // 对 data 进行任意转换处理
    } catch (err) { return data }
  }]
})

// 拦截所有利用 request 发出的请求
request.interceptors.request.use((config) => {
  // config ：当前这次请求的所有信息
  // interceptors.request.use((config) => {}) 固定样式
  // console.log(12)
  // console.log(config)
  // 直接获取本地存储
  // if (getStorage('tt-user')) {
  //   config.headers.Authorization = 'Bearer ' + getStorage('tt-user').token
  // }

  // 另一种写法 通过获取 store 里面的 token
  if (store.state.user) {
    config.headers.Authorization = 'Bearer ' + store.state.user.token
  }
  return config
})

// 拦截所以响应的结果
request.interceptors.response.use(res => {
  return res.data.data
})
export default request
